package com.demo.java.OD1_50.OD45;

import java.math.BigInteger;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【N 进制减法】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145579649
 */
public class OdMain {
    // 检查是否是无效的输入（以 0 开头的多位数）
    private static boolean check(String s) {
        if (s == null)
            return false;
        if (s.length() > 1 && s.startsWith("0")) {
            System.out.println(-1);  // 输入非法，输出 -1
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String lineValues = s.nextLine();  // 读取输入
            if ("".equals(lineValues) || lineValues == null)
                return;
            String[] splitStrs = lineValues.split(" ");  // 分割输入的进制和两个操作数
            if (check(splitStrs[1]))
                return;
            if (check(splitStrs[2]))
                return;

            int radixValue = Integer.parseInt(splitStrs[0]);  // 获取进制值
            // 使用 BigInteger 来进行任意进制的转换和运算
            BigInteger minuend = new BigInteger(splitStrs[1], radixValue);  // 被减数
            BigInteger subtrahend = new BigInteger(splitStrs[2], radixValue);  // 减数

            BigInteger diff = minuend.subtract(subtrahend);  // 计算差值
            int sign = diff.compareTo(BigInteger.ZERO) >= 0 ? 0 : 1;  // 判断符号
            String result = diff.abs().toString(radixValue);  // 计算绝对值并转换为指定进制
            System.out.printf("%d %s", sign, result);  // 输出结果
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("input error");  // 输入错误时的异常处理
        }
    }
}